
package com.scs.application.modules.base.entity;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.scs.application.core.model.DataEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * 耗材报价资质实体对象
 *
 */
@TableName("material_bid_cert")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class MaterialBidCert extends DataEntity implements Serializable {

    /**
     * 报价单ID
     */
    private String bidId;

    /**
     * 资质类型
     */
    @NotBlank(message = "资质类型不能为空")
    @Length(min = 1, max = 20, message = "资质类型长度必须介于 1 和 20 之间")
    private String certType;

    /**
     * 资质名称
     */
    @NotBlank(message = "资质名称不能为空")
    @Length(min = 1, max = 50, message = "资质名称长度必须介于 1 和 50 之间")
    private String certName;

    /**
     * 资质编号
     */
    @Length(max = 30, message = "资质编号长度必须介于 0 和 30 之间")
    private String certificateNo;

    /**
     * 有效期开始
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private java.util.Date expiryStartDate;

    /**
     * 有效期结束
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private java.util.Date expiryEndDate;

    /**
     * 业务ID
     */
    private String busId;

    /**
     * 业务名称
     */
    @Length(max = 20, message = "业务名称长度必须介于 0 和 20 之间")
    private String busName;

    /**
     * 平台资质ID
     */
    private String certId;

    /**
     * 文档ID数组
     */
    private JSONArray docIds;

}
